package org.lanyu.springainovel.novel.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 章节正文实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("chapter_content")
public class ChapterContent {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 书籍ID
     */
    @TableField("book_id")
    private Long bookId;

    /**
     * 卷ID，短篇或无分卷的小说此字段为NULL
     */
    @TableField("volume_id")
    private Long volumeId;

    /**
     * 章节号
     */
    @TableField("chapter_number")
    private Integer chapterNumber;

    /**
     * 章节字数
     */
    @TableField("word_num")
    private Integer wordNum;

    /**
     * 章节标题
     */
    @TableField("chapter_title")
    private String chapterTitle;

    /**
     * 章节细纲
     */
    @TableField("chapter_outline")
    private String chapterOutline;

    /**
     * 正文内容
     */
    @TableField("content")
    private String content;

    /**
     * 版本号，正在编辑的版本号始终为0，历史版本的版本号从1开始递增
     */
    @TableField("version")
    private Integer version;

    /**
     * 状态：0-草稿，1-生成中，2-已完成，3-失败
     */
    @TableField("status")
    private Integer status;

    /**
     * 关联的任务ID
     */
    @TableField("task_id")
    private String taskId;

    /**
     * 错误信息（失败时记录）
     */
    @TableField("error_message")
    private String errorMessage;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}